單人用的NFS idmapping

10/8/2022Linux

Introduction

NFS雖然是很方便的掛載方法,但不像samba或sshfs一樣可以做身份認證
本機的UID是什麼寫入到NFS server的UID就是什麼

e.g. 本機的UID是1001, username是hunglin
但NFS server的hunglin的UID是1000
但寫入到遠端的檔案會顯示1001而不是hunglin

本機

drwxr-sr-x  7 hunglin hunglin   10M Mar  1  2022 file.txt

NFS server

drwxr-sr-x  7 1001 1001   10M Mar  1  2022 file.txt

如果NFS server和本機都只有自己使用的話有個方法可以間接的mapping id

指定匿名ID

NFS server端可以在/etc/export設定anonymous的uid和gid

all_squash,anonuid=1001,anongid=1001

https://linux.die.net/man/5/exports

all_squash是指將寫入的檔案的user和group都壓縮成anonymous的uid和gid
只要將anonuid和anongid設定成server端user的uid和gid就可以做到idmapping

重啟nfs server

sudo /etc/init.d/nfs-kernel-server restart
sudo start idmapd

如此就可以達到idmapping的目的
但這方法只是解決了短期的問題
身為server面向的應該是多個使用者,查了很久方法大概是要以NFSv4搭配kerberos

kerberos又是啥? 看起來是個驗證機制
但設定看起來超複雜的= =
哪天真的有心情才會想弄吧...

利用kerberos 提供票據加密 - 鳥哥的Linux 私房菜